#Demo2.ps1
#Mise en place d'un ColoredConsoleAppender en tant qu'appender par d?faut.
#Manipulation des Couleurs
.\InitializeLG4N.ps1 
# $DebugPreference="Continue"
#Stop-log

 #On cr?e un nouveau logger 
$Log = Get-LogLogger "LogPowerShell"

 #D?clare les couleurs utilis?es par un appender coloris?
[System.Collections.Hashtable[]] $Colors1=@(
   @{Level="Warn";FColor="Yellow";BColor=""},
   @{Level="Info";FColor="Cyan";BColor=""},
   @{Level="Debug";FColor="Green,HighIntensity";BColor=""},
   @{Level="Error";FColor="Red";BColor="Red,HighIntensity"}
 )
     
$Pattern = "%date{dd-MM-yyyy } %-5level - %message%newline"
  #Configure le framework avec l'appender coloris? pr?c?dement cr?? dans le pipeline
  #Cet appender devient l'appender par d?faut
  #Le tableau de mappage des couleurs provient d'un tableau de hashtable. 
  # la HashTable doit respecter la structure suivante :  @{Level="";FColor="";BColor=""}
New-LogColoredConsoleAppender $Colors1 $Pattern -Activate|Set-LogBasicConfigurator 
 #Notre logger reste actif m?me si l'appender a ?t? modifi?.
 #Ici la cha?ne de formatage diff?re ainsi que le type de l'appender par d?faut associ? au logger "LogPowerShell"   
$Log.Info("TestMessage1");

[System.Collections.Hashtable] $Colors=@{
   PSDefault=@( 
     @{Level="Warn";FColor="Yellow";BColor=""},
     @{Level="Info";FColor="Cyan";BColor=""},
     @{Level="Debug";FColor="Green";BColor=""},
     @{Level="Error";FColor="Red";BColor=""}
    )

   Testing=@(
     @{Level="Warn";FColor="Yellow";BColor=""},
     @{Level="Info";FColor="Green,HighIntensity";BColor=""},
     @{Level="Debug";FColor="Cyan";BColor=""},
     @{Level="Error";FColor="Red";BColor=""}
     @{Level="Fatal";FColor="Red";BColor="Red,HighIntensity"}
  )
 }
 #On r?initialise l'appender avec un nouveau mapping de couleurs.
 #Le tableau de mappage des couleurs provient cette fois d'un tableau de tableau de hashtable. 
 #Pour l'appel suivant on effectue le test d'existence des couleurs sur le repository par d?faut.
$Appender=New-LogColoredConsoleAppender $Colors.Testing $Pattern -Activate|Set-LogBasicConfigurator 
$Log.Info("TestMessage2");

 #Modifie le mappage des couleurs d'un niveau, dans ce cas on doit revalider 
 #les options, de l'appender modifi?, par l'appel ? Enable-LogAppender
 #ATTENTION selon le type de l'appender sa reconfiguration peut provoquer des effets ind?sirables, cf. FileAppender.
$Appender|Add-LogMappingColors $Appender @{Level="Info";FColor="red";BColor="HighIntensity"}|Enable-LogAppender
$Log.Info("TestMessage3");

Stop-Log

